﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Data;

namespace IBuy.DataAccessLayer
{
    public interface IDatabase
    {
        /// <summary>
        /// 公有方法，在一个数据表中插入一条记录。
        /// </summary>
        /// <param name="TableName">表名</param>
        /// <param name="Cols">哈西表，键值为字段名，值为字段值</param>
        /// <returns>是否成功</returns>
        bool Insert(String TableName, Hashtable Cols);
        /// <summary>
        /// 公有方法，更新一个数据表。
        /// </summary>
        /// <param name="TableName">表名</param>
        /// <param name="Cols">哈西表，键值为字段名，值为字段值</param>
        /// <param name="Where">Where子句</param>
        /// <returns>是否成功</returns>
        bool Update(String TableName, Hashtable Cols, String Where);
        /// <summary>
        /// 公有方法，从数据库中删除记录
        /// </summary>
        /// <param name="TableName">表名</param>
        /// <param name="where">string类型，条件语句</param>
        /// <returns>布尔值bool，操作是否成功</returns>
        bool Delete(string TableName, string where);
        /// <summary>
        /// 公有方法，执行一组Sql语句。
        /// </summary>
        /// <param name="SqlStrings">Sql语句组</param>
        /// <returns>bool类型，是否成功</returns>
        bool ExecuteSQL(ArrayList SqlStrings);
         /// <summary>
        /// 公有方法，执行Sql语句。
        /// </summary>
        /// <param name="SqlString">Sql语句</param>
        /// <returns>对Update、Insert、Delete为影响到的行数，其他情况为-1</returns>
        int ExecuteSQL(String SqlString);
        /// <summary>
        /// 公有方法，获取数据，返回一个DataRow。
        /// </summary>
        /// <param name="SqlString">Sql语句</param>
        /// <returns>DataRow</returns>
        DataRow GetDataRow(String SqlString);
        /// <summary>
        /// 公有方法，获取数据，返回一个DataSet。
        /// </summary>
        /// <param name="SqlString">Sql语句</param>
        /// <returns>DataSet</returns>
        DataSet GetDataSet(String SqlString);
    }
}
